#define _CRT_SECURE_NO_WARNINGS 1

class Solution {
public:
    void duplicateZeros(vector<int>& arr) {
        int zero = 0, n = arr.size();
        for (auto& e : arr)
        {
            if (e == 0) ++zero;
        }
        for (int i = n - 1; i >= 0; i--)
        {
            if (arr[i] == 0 && i + zero - 1 < n)
                arr[i + zero - 1] = arr[i];
            if (i + zero < n)
                arr[i + zero] = arr[i];
            if (arr[i] == 0) --zero;
        }
    }
};

